Explorer les résultats
Lorsque l'on appelle un système externe, le résultat est renvoyé sous forme d'objet JSON, il existe plusieurs façons d'explorer le résultat de ces objets.
Par exploration, cela va permettre d'y intercepter les informations essentielles pour :
- les exploiter à l'intérieur du smartflow
- les attacher manuellement à des Smart Objects
Par mapping du résultat dans des Smart Objects.
Seules les propriétés trouvées seront mappées.
Si le but est de collecter les données dans des Smart Objects, il existe un noeud permettant de fusionner ces données avec la base Vision.
Nous imaginerons un Service renvoyant l'objet suivant pour illustrer les différents exemples.
{
"value": {
"foo": "bar",
"baz": "qux",
"quux": "corge"
}
}
Explorer
Il existe deux méthodes pour explorer et parcourir les objets dans les smartflows.
Le noeud Explorer un objet qui comme son nom l'indique va permettre de rentrer en profondeur dans l'objet et d'y extraire des propriétés.
Dans l'exemple ci-dessous, le smartflow renverra la valeur "bar"
Le noeud Fonction sur objets qui possède plusieurs fonctions de manipulation d'un objet dont une qui permet de ressortir les valeurs de propriétés via un tableau de chemin.
Dans l'exemple ci-dessous, le smartflow renverra la valeur ["bar", "qux"]
Mapper
Il est possible d'effectuer un mapping automatique dans un ou plusieurs Smart Object(s) via la tâche Transmuter des objets.
Avec cette méthode, le Smart Model doit être créé en amont en symétrie avec le résultat attendu.
Dans l'exemple ci-dessous, le smartflow renverra un Smart Object de type foobar avec les valeurs foo
et baz
renseignées (valeurs présentes dans le Smart Model).
Si le service renvoie un tableau, le résultat du noeud Transmuter des objets sera alors un tableau de Smart Objects.
Fusionner
Pour mettre à jour les objets venant d'un système externe dans la base de données de Vision, le noeud Fusionner permettra d'ajouter ou de modifier (existant) les Smart Objects dans la base.
Dans l'exemple ci-dessous, les objets seront mis à jour par rapport à la collection foobar
.
Les objets trouvés (la clé de référence pour rechercher l'existant sera foo
) seront mis à jour.
Les objets non trouvés seront ajoutés.
Les propriétés foo
et baz
seront mis à jour dans les objets.
Le noeud Transmuter des objets ne coche pas le sauvegarde dans l'API, ce qui permet de ne pas dupliquer les objets, c'est la tâche Fusionner qui aura la responsabilité de la sauvegarde.